//
// Created by subject on 2024/12/16.
//

#ifndef MY_APPLICATION_LOGUTILS_H
#define MY_APPLICATION_LOGUTILS_H


#include <android/log.h>
#include <time.h>
#include <stdint.h>

#include <inttypes.h> // 包含 PRIu64 宏
#include <stdint.h>   // 包含 uint64_t 类型
#include <stdio.h>    // 用于 printf

// 定义日志 TAG，可根据需要修改
#ifndef LOG_TAG
#define LOG_TAG "RK_LLM"
#endif

// 定义日志级别的宏
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)  // 调试信息
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)   // 普通信息
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)   // 警告信息
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)  // 错误信息
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL, LOG_TAG, __VA_ARGS__)  // 致命错误

inline uint64_t GetCurrentTimeMillis() {
    struct timespec ts;
    clock_gettime(CLOCK_REALTIME, &ts); // 获取当前时间
    return static_cast<uint64_t>(ts.tv_sec) * 1000 + ts.tv_nsec / 1000000; // 转换为毫秒
}

#endif //MY_APPLICATION_LOGUTILS_H
